﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Cryptography;
using System.IO;
using System.Text;
using System.Data.SqlClient;


namespace jw
{
    /// <summary>
    /// 公共方法类
    /// </summary>
    public class CommandIdea
    {
        /// <summary>
        /// 设置点击率
        /// </summary>
        /// <param name="tablename">表名</param>
        /// <param name="fieldName">点击率的字段</param>
        /// <param name="identityID">主键</param>
        /// <param name="idengtityIDvalue">主键字段的值</param>
        public static int SetHits(string tablename, string fieldName, string identityID, string idengtityIDvalue)
        {
            string sql = "select " + fieldName + " from " + tablename + " where " + identityID + "=" + idengtityIDvalue;
            int hits = Convert.ToInt32(kim.DBUtility.DbHelperSQL.ExecuteReader( sql));

            hits++;
            sql = "update " + tablename + " set " + fieldName + "=" + hits + " where " + identityID + "=" + idengtityIDvalue;

            kim.DBUtility.DbHelperSQL.ExecuteReader(sql);
            return hits;
        }

        public static string GetPinyin(string HZ)
        {
            string ret = string.Empty;
            for (int i = 0; i < HZ.Length; i++)
            {
                ret += GetPinyin2(HZ);
            }
            return ret;
        }
        public static string GetPinyin2(string HZ)
        {
            try
            {
                byte[] ZW = new byte[2];
                long HZ_INT;
                ZW = System.Text.Encoding.Default.GetBytes(HZ);
                // get the array of byte from the single char 
                //int i1 = (short)(array[0] - oxa1); 
                //int i2 = (short)(array[1] - oxa1); 
                if (ZW.Length <= 1)
                {
                    return HZ;
                }
                int i1 = (short)(ZW[0]);
                int i2 = (short)(ZW[1]);
                HZ_INT = i1 * 256 + i2; // expresstion 
                //table of the constant list 
                // 'A'; //45217..45252 
                // 'B'; //45253..45760 
                // 'C'; //45761..46317 
                // 'D'; //46318..46825 
                // 'E'; //46826..47009 
                // 'F'; //47010..47296 
                // 'G'; //47297..47613 

                // 'H'; //47614..48118 
                // 'J'; //48119..49061 
                // 'K'; //49062..49323 
                // 'L'; //49324..49895 
                // 'M'; //49896..50370 
                // 'N'; //50371..50613 
                // 'O'; //50614..50621 
                // 'P'; //50622..50905 
                // 'Q'; //50906..51386 

                // 'R'; //51387..51445 
                // 'S'; //51446..52217 
                // 'T'; //52218..52697 
                //没有U,V 
                // 'W'; //52698..52979 
                // 'X'; //52980..53640 
                // 'Y'; //53689..54480 
                // 'Z'; //54481..55289 

                // HZ_INT match the constant 
                if ((HZ_INT >= 45217) && (HZ_INT <= 45252))
                {
                    return "A";
                }
                if ((HZ_INT >= 45253) && (HZ_INT <= 45760))
                {
                    return "B";
                }
                if ((HZ_INT >= 45761) && (HZ_INT <= 46317))
                {
                    return "C";

                }
                if ((HZ_INT >= 46318) && (HZ_INT <= 46825))
                {
                    return "D";
                }
                if ((HZ_INT >= 46826) && (HZ_INT <= 47009))
                {
                    return "E";
                }
                if ((HZ_INT >= 47010) && (HZ_INT <= 47296))
                {
                    return "F";
                }
                if ((HZ_INT >= 47297) && (HZ_INT <= 47613))
                {
                    return "G";
                }
                //************************** 
                if ((HZ_INT >= 47614) && (HZ_INT <= 48118))
                {
                    //MessageBox.Show("H"); 
                    return "H";
                }

                if ((HZ_INT >= 48119) && (HZ_INT <= 49061))
                {
                    return "J";
                }
                if ((HZ_INT >= 49062) && (HZ_INT <= 49323))
                {
                    return "K";
                }
                if ((HZ_INT >= 49324) && (HZ_INT <= 49895))
                {
                    return "L";
                }
                if ((HZ_INT >= 49896) && (HZ_INT <= 50370))
                {
                    return "M";
                }

                if ((HZ_INT >= 50371) && (HZ_INT <= 50613))
                {
                    return "N";

                }
                if ((HZ_INT >= 50614) && (HZ_INT <= 50621))
                {
                    return "O";
                }
                if ((HZ_INT >= 50622) && (HZ_INT <= 50905))
                {
                    return "P";

                }
                if ((HZ_INT >= 50906) && (HZ_INT <= 51386))
                {
                    return "Q";

                }
                //********************* 
                if ((HZ_INT >= 51387) && (HZ_INT <= 51445))
                {
                    return "R";
                }
                if ((HZ_INT >= 51446) && (HZ_INT <= 52217))
                {
                    return "S";
                }
                if ((HZ_INT >= 52218) && (HZ_INT <= 52697))
                {
                    return "T";
                }
                if ((HZ_INT >= 52698) && (HZ_INT <= 52979))
                {
                    return "W";
                }
                if ((HZ_INT >= 52980) && (HZ_INT <= 53640))
                {
                    return "X";
                }
                if ((HZ_INT >= 53689) && (HZ_INT <= 54480))
                {
                    return "Y";
                }
                if ((HZ_INT >= 54481) && (HZ_INT <= 55289))
                {
                    return "Z";
                }
            }
            catch
            {
            }

            return ("");
        }







        private static Byte[] Iv64 = { 11, 22, 33, 44, 55, 66, 77, 85 };
        private static Byte[] byKey64 = { 10, 20, 30, 40, 50, 60, 70, 80 };
        /// <summary>
        /// //URL 传ID 加密
        /// </summary>
        /// <param name="strText"></param>
        /// <returns></returns>
        public static string Encrypt(string strText)
        {
            try
            {
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                Byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey64, Iv64), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                return Convert.ToBase64String(ms.ToArray()).Replace("+", "%2B");
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
        /// <summary>
        /// //URL 传ID 解密
        /// </summary>
        /// <param name="strText"></param>
        /// <returns></returns>
        public static string Decrypt(string strText)
        {
            Byte[] inputByteArray = new byte[strText.Length];
            try
            {
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Convert.FromBase64String(strText.Trim());
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey64, Iv64), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                System.Text.Encoding encoding = System.Text.Encoding.UTF8;
                return encoding.GetString(ms.ToArray());
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
       
        
    }
}